package com.diankangwo.dto;

import com.diankangwo.domain.Commodity;
import com.diankangwo.domain.UserInfo;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * Description : 支付记录
 */
public class OnlinePayLogDTO {

    private Integer id;

    @NotBlank(message = "GUID不能为空")
    private String idKey;

    @NotNull(message = "支付金额不能为空")
    private Integer totalFee;

    @NotBlank(message = "商户订单号不能为空")
    private String billNo;

    @NotBlank(message = "订单标题不能为空")
    private String title;

    @NotBlank(message = "返回类型不能为空")
    private String returnType;

    @NotBlank(message = "交易类型不能为空")
    private String payType;

    private List<MapOptionalDTO> optionList;

    @NotBlank(message = "支付状态不能为空")
    private String payStatus;

    private String webhookStatus; // web hook 通知状态

    private String userPayStatus; // 用户回调变更状态

    /**
     * 操作记录的时间和用户
     */
    private Date createDate;

    private Date updateDate;

    private String createUser;

    private String updateUser;

    private Commodity commodity;

    private UserInfo userinfo;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getIdKey() {
        return idKey;
    }

    public void setIdKey(String idKey) {
        this.idKey = idKey;
    }

    public Integer getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(Integer totalFee) {
        this.totalFee = totalFee;
    }

    public String getBillNo() {
        return billNo;
    }

    public void setBillNo(String billNo) {
        this.billNo = billNo;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getReturnType() {
        return returnType;
    }

    public void setReturnType(String returnType) {
        this.returnType = returnType;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public List<MapOptionalDTO> getOptionList() {
        return optionList;
    }

    public void setOptionList(List<MapOptionalDTO> optionList) {
        this.optionList = optionList;
    }

    public String getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }

    public String getWebhookStatus() {
        return webhookStatus;
    }

    public void setWebhookStatus(String webhookStatus) {
        this.webhookStatus = webhookStatus;
    }

    public String getUserPayStatus() {
        return userPayStatus;
    }

    public void setUserPayStatus(String userPayStatus) {
        this.userPayStatus = userPayStatus;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public Commodity getCommodity() {
        return commodity;
    }

    public void setCommodity(Commodity commodity) {
        this.commodity = commodity;
    }

    public UserInfo getUserinfo() {
        return userinfo;
    }

    public void setUserinfo(UserInfo userinfo) {
        this.userinfo = userinfo;
    }
}
